package cn.ware.house.interfaces.service.productservice;

import cn.ware.house.interfaces.entity.goods.Product;
import cn.ware.house.interfaces.entity.goods.ProductStyle;

import java.util.List;

/**
 * 商品服务接口，定义了对商品业务逻辑操作的抽象方法，
 * 这些方法会调用数据访问层（ProductMapper）的方法来实现具体功能，
 * 对外提供统一的服务接口，便于控制层调用以及业务逻辑的封装。
 */
public interface ProductService {
    // 分页查询商品列表
    List<Product> findProductsByPage(int page, int size);

    // 根据商品编号获取商品信息
    Product findProductById(Integer productId);

    // 添加商品信息
    boolean insertProduct(Product product);

    // 根据商品编号更新商品信息
    boolean updateProductById(Product product);

    // 根据商品编号删除商品信息
    boolean deleteProductById(Integer productId);

    // 获取商品总记录数
    int getProductTotalCount();

    /**
     * 根据商品编号获取该商品的所有样式信息。
     *
     * @param productId 商品编号。
     * @return 该商品对应的样式信息列表。
     */
    List<ProductStyle> getProductStylesByProductId(Integer productId);
}